/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package agb.Modelo;

import agb.Conexion.Conexion;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.util.Vector;

/**
 *
 * @author Administrator
 */
public class Utilidades {
    private String anioMatriculas, grado, seccion, nivel,
            horaEntrada, horaSalida, nombreAlumno, nombreEnlace, nombreTema,
          nombreCurso,  nombrePersona,  tipoUsuario, periodoAnio;
    private int codGrado,  codNivel,  codSeccion,  codPersona,  codTipoUsuarioWeb, codPeriodo, codCurso, codNivelGrado;

    public int getCodCurso() {
        return codCurso;
    }

    @Override
    public String toString() {
        return "Utilidades{" + "anioMatriculas=" + anioMatriculas + ", grado=" + grado + ", seccion=" + seccion + ", nivel=" + nivel + ", horaEntrada=" + horaEntrada + ", horaSalida=" + horaSalida + ", nombreAlumno=" + nombreAlumno + ", nombreEnlace=" + nombreEnlace + ", nombreTema=" + nombreTema + ", nombreCurso=" + nombreCurso + ", nombrePersona=" + nombrePersona + ", tipoUsuario=" + tipoUsuario + ", periodoAnio=" + periodoAnio + ", codGrado=" + codGrado + ", codNivel=" + codNivel + ", codSeccion=" + codSeccion + ", codPersona=" + codPersona + ", codTipoUsuarioWeb=" + codTipoUsuarioWeb + ", codPeriodo=" + codPeriodo + ", codCurso=" + codCurso + ", codNivelGrado=" + codNivelGrado + '}';
    }

    public void setCodCurso(int codCurso) {
        this.codCurso = codCurso;
    }

    public int getCodNivelGrado() {
        return codNivelGrado;
    }

    public void setCodNivelGrado(int codNivelGrado) {
        this.codNivelGrado = codNivelGrado;
    }
    
    
    
    public Utilidades(){
        
    }
    /**
     * @return the anioMatriculas
     */
    public String getAnioMatriculas() {
        return anioMatriculas;
    }

    /**
     * @param anioMatriculas the anioMatriculas to set
     */
    public void setAnioMatriculas(String anioMatriculas) {
        this.anioMatriculas = anioMatriculas;
    }
    
     public static ArrayList<Test> listarTestPreguntas(String fecha)
    {
         Test t = null;
        ArrayList<Test> test = new ArrayList<Test>();
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
       
        String sql= "select idtest,idtipotest,idtipoletra,fecha,pregunta,nombretest from testvocacional where fecha=?"; 
       
        try
        {
             cn = Conexion.getConexion();
             ps = cn.prepareStatement(sql);
             
            fecha=fecha.substring(0, 4)+"-"+fecha.substring(4,6)+"-"+fecha.substring(6,8);
             //System.out.println("FECHITA:"+fecha.substring(0, 4)+"-"+fecha.substring(4,6)+"-"+fecha.substring(6,8));
         //   Date fe= new Date(Integer.parseInt(fecha.substring(0, 4))-1900,Integer.parseInt(fecha.substring(4,6))-1,Integer.parseInt(fecha.substring(6,8)));
             ps.setString(1, fecha);
             System.out.println("Fechita: "+fecha);
             rs = ps.executeQuery();
         
         
            while (rs.next())
            {
                t=new Test();
                t.setIdTest(rs.getInt(1));
                t.setIdTipo(rs.getInt(2));
                t.setIdLetraTipo(rs.getInt(3));
                t.setPregunta(rs.getString(5));
                test.add(t);
                System.out.println(rs.getString(5));
               
            }
        }
        catch (SQLException ex) 
        {
            System.out.println("ex: "+ex.getLocalizedMessage()+"-"+ex.getMessage()+"-"+ex.getSQLState());
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        } catch (Exception ex) {
            System.out.println("ex: "+ex.getLocalizedMessage()+"-"+ex.getMessage());
            ex.printStackTrace();
        }

        return test;
    }
    public static boolean registroTest(String tests,int codigo){
        boolean rpta = false;
        Connection cn = null;

        PreparedStatement ps = null;
        String [] te =tests.split("-");
        System.out.println("Test: "+te.toString());
        for(int i=0;i<te.length;i++)
        {
            System.out.println("Tests:"+te[i]);
        }
//        String sql = "Insert into enlace (idResultado, idAlumno,puntuacion, " +
//                "idTest) " +
//                "values (nextval('secTest'), ?, ?, ?)" ;
//        try{
//            cn = Conexion.getConexion();
//            cn.setAutoCommit(false);
//            ps = cn.prepareStatement(sql);
//            ps.setInt(1, codigo);
//            ps.setString(2, oEnlace.getDescripcion());
//            ps.setInt(3, oEnlace.getCodTema());
//            rpta = ps.executeUpdate()==1?true:false;
//            if(rpta){
//                Conexion.confirmarTransaccion(cn);
//            }else{
//                Conexion.anularTransaccion(cn);
//            }
//        Conexion.cerrarPreparedStatement(ps);
//        Conexion.cerrarConexion(cn);
//        }catch(SQLException ex){
//            ex.printStackTrace();
//            Conexion.cerrarPreparedStatement(ps);
//            Conexion.cerrarConexion(cn);
//        }catch(Exception ex){
//            ex.printStackTrace();
//        }
        return rpta;
    }

    public static ArrayList<Test> listarTest()
    {
         Test t = null;
        ArrayList<Test> test = new ArrayList<Test>();
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
       
        String sql= "select nombretest,count(pregunta),fecha from testvocacional where TO_CHAR(fecha, 'YYYY') = "
                +(new java.util.Date().getYear() + 1900)+" group by nombretest,fecha"; 
       
        try
        {
             cn = Conexion.getConexion();
             ps = cn.prepareStatement(sql);
             rs = ps.executeQuery();
            while (rs.next())
            {
                t=new Test();
                t.setNombre(rs.getString(1));
                t.setFecha(rs.getDate(3));
                test.add(t);
                System.out.println("rs: "+rs.getString(1));
                System.out.println("rs: "+rs.getDate(3));
            }
        }
        catch (SQLException ex) 
        {
            System.out.println("ex: "+ex.getLocalizedMessage()+"-"+ex.getMessage()+"-"+ex.getSQLState());
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        } catch (Exception ex) {
            System.out.println("ex: "+ex.getLocalizedMessage()+"-"+ex.getMessage());
            ex.printStackTrace();
        }

        return test;
    }
    public List<Utilidades> ListacursosPorNivelGrado(int codNivel, int codGrado){
        Utilidades oUtilidades = null;
        List<Utilidades> LUtilidades = new ArrayList<Utilidades>();
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select DISTINCT c.cod_curso, c.nombre as nombreCurso "
                + "from matricula m "
                + "inner join programacion_aula pa on pa.cod_progaula = m.cod_progaula "
                + "inner join horario_aula ha on ha.cod_progaula = pa.cod_progaula "
                + "inner join detalle_horarioaula dha on ha.cod_horario = dha.cod_horario "
                + "inner join curso c on c.cod_curso = dha.cod_curso  "
                + "inner join nivel_grado ng on ng.cod_nivelgrado = pa.cod_nivelgrado "
                + "where ng.cod_nivel = ? "
                + "and ng.cod_grado = ? "
                + "and TO_CHAR(m.fecha_registro, 'YYYY') = " + (new java.util.Date().getYear() + 1900) + ""
                + " order by c.nombre ";                   
        
        try {
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setInt(1, codNivel);
            ps.setInt(2, codGrado);
            rs = ps.executeQuery();
            while (rs.next()) {
                oUtilidades = new Utilidades();
                oUtilidades.setCodCurso(rs.getInt(1));
                oUtilidades.setNombreCurso(rs.getString(2));
                LUtilidades.add(oUtilidades);
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        } catch (SQLException ex) {
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return LUtilidades;        
    }
    
    
     public ArrayList<Utilidades> ListaAlumnosApoderado(int codPersona){
        Utilidades oUtilidades = null;
        ArrayList<Utilidades> LUtilidades = new ArrayList<Utilidades>();
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "SELECT cod_persona, LPAD(TRIM(TO_CHAR(cod_persona,'99999999')),8,'0') AS codigo, " +
                         "apell_paterno || ' ' || apell_materno || ', ' || primer_nombre || ' ' || " +
                         "otros_nombres AS persona FROM p_natural WHERE cod_persona IN(" +
                         "    SELECT cod_persona FROM parentesco WHERE cod_pariente IN (" +
                         "        SELECT cod_pariente FROM pariente WHERE cod_persona = ?))";               
        
        try {
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setInt(1, codPersona);
            rs = ps.executeQuery();
            while (rs.next()) {
                oUtilidades = new Utilidades();
                oUtilidades.setCodPersona(rs.getInt(1));
                oUtilidades.setNombrePersona(rs.getString(3));
                LUtilidades.add(oUtilidades);
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        } catch (SQLException ex) {
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return LUtilidades;        
    }
    
        public List<Utilidades> ListaCursosPorCodNivelGrado(int codNivelGrado){
        Utilidades oUtilidades = null;
        List<Utilidades> LUtilidades = new ArrayList<Utilidades>();
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select c.cod_curso, c.nombre "
                + "from detalle_proggradocurso pc "
                + "inner join programacion_annoacademico pa on pc.cod_progannoacad = pa.cod_progannoacad "
                + "inner join curso c on c.cod_curso = pc.cod_curso "
                + "where pc.cod_nivelgrado = ? "
                + "and pc.estado_actividad = true "
                + "and pa.cod_tipoprogannoacad = 1 "
                + "and TO_CHAR(pa.fecha_inicio, 'YYYY') = " + (new java.util.Date().getYear() + (1900)) + " "
                + " order by c.nombre";                     
        
        try {
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setInt(1, codNivelGrado);
            rs = ps.executeQuery();
            while (rs.next()) {
                oUtilidades = new Utilidades();
                oUtilidades.setCodCurso(rs.getInt(1));
                oUtilidades.setNombreCurso(rs.getString(2));
                LUtilidades.add(oUtilidades);
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        } catch (SQLException ex) {
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
        return LUtilidades;        
    }
    
   public static Vector<String>  AniosEstudiosAlumno(int cod_persona){
        String anios = null;
        Vector<String> LAnios = new Vector<String>();
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "SELECT TO_CHAR(M.fecha_registro, 'YYYY')  " +
                     "FROM MATRICULA M " +
                     "WHERE M.cod_persona = ? AND M.estado_actividad = true " +
                     "ORDER BY M.fecha_registro ASC" ;
        try{
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setInt(1, cod_persona);
            rs = ps.executeQuery();
            while(rs.next()){
                anios = rs.getString(1);
                LAnios.add(anios);
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        }catch(SQLException ex){
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return LAnios;
    }

   public static int nivelGradoAlumno(int codGrado, int codNivel){
        int codNivelGrado = 0;
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "SELECT N.cod_nivelgrado " +
                "FROM nivel_grado N " +
                "WHERE N.cod_grado = ? AND N.cod_nivel = ?; " ;
        try{
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setInt(1, codGrado);
            ps.setInt(2, codNivel);
            rs = ps.executeQuery();
            while(rs.next()){
                codNivelGrado = rs.getInt(1);
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        }catch(SQLException ex){
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return codNivelGrado;
    }
   

   public static Utilidades  GradoSeccionAlumno(int cod_persona){
        Utilidades oUtilidad = new Utilidades();
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select g.nombre as nombreGrado, a.nombre as nombreSeccion, n.nombre as nombreNivel,year(?) , " +
                "pn.apell_paterno || ' ' || pn.apell_materno || ',  '|| pn.primer_nombre as nombre, g.cod_grado as codigoGrado, " +
                "n.cod_nivel as codigoNivel, a.cod_aula " +
                "from matricula m " +
                "inner join aula a on m.cod_aula = a.cod_aula " +
                "inner join p_natural pn on pn.cod_persona = m.cod_persona " +
                "inner join programacion_aula pa on pa.cod_progaula = m.cod_progaula " +
                "inner join nivel_grado ng on pa.cod_nivelgrado = ng.cod_nivelgrado " +
                "inner join nivel n on n.cod_nivel = ng.cod_nivel " +
                "inner join grado g on g.cod_grado = ng.cod_grado " +                
                "where m.cod_persona = ? and TO_CHAR(m.fecha_registro, 'YYYY') = year(?) "  ;
        try{
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setInt(1, cod_persona);
            ps.setInt(2, cod_persona);
            ps.setInt(3, cod_persona);
            rs = ps.executeQuery();
            while(rs.next()){                
                oUtilidad.setGrado(rs.getString(1))  ;
                oUtilidad.setSeccion(rs.getString(2))  ;
                oUtilidad.setNivel(rs.getString(3))  ;
                oUtilidad.setAnioMatriculas(rs.getString(4))  ;
                oUtilidad.setNombreAlumno(rs.getString(5));
                oUtilidad.setCodGrado(rs.getInt(6));
                oUtilidad.setCodNivel(rs.getInt(7));
                oUtilidad.setCodSeccion(rs.getInt(8));
            }
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(SQLException ex){
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return oUtilidad;
    }
   
   public static Utilidades  buscaUsuario(String alias, String clave, boolean conClave){
        Utilidades  oUtilidad = new Utilidades();
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql =  "SELECT U.cod_persona, U.cod_tipousuarioweb, T.nombre, " +
                     "       P.apell_paterno || ' ' || P.apell_materno || ', ' || " +
                     "       P.primer_nombre || ' ' || " +
                     "       P.otros_nombres AS persona " +
                     "FROM usuario_web U " +
                     "INNER JOIN tipo_usuarioweb T " +
                     "  ON (T.cod_tipousuarioweb = U.cod_tipousuarioweb) " +
                     "INNER JOIN p_natural P " +
                     "  ON (U.cod_persona = P.cod_persona) " +
                     "WHERE U.activo = TRUE " +
                     "AND UPPER(U.alias) = UPPER(?) ";
         if (conClave) 
            sql += "AND U.clave = ?";
        try{
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setString(1, alias);
            ps.setString(2, clave);         
            rs = ps.executeQuery();
            while(rs.next()){
               
                oUtilidad.setCodPersona(rs.getInt(1))  ;
                oUtilidad.setCodTipoUsuarioWeb(rs.getInt(2))  ;
                oUtilidad.setNombrePersona(rs.getString(3))  ;
                oUtilidad.setTipoUsuario(rs.getString(4))  ;
                            
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        }catch(SQLException ex){
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return oUtilidad;
    }

      public static ArrayList< Utilidades > GradoSeccionAlumnosSegunPariente(int cod_personaPariente){
          ArrayList<Utilidades> LListaGrados = new ArrayList<Utilidades>();
        Utilidades oUtilidad = null;
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select   g.nombre as nombreGrado, a.nombre as nombreSeccion, " +
                "n.nombre as nombreNivel, g.cod_grado as codigoGrado, n.cod_nivel as codigoNivel, a.cod_aula " +
                "from matricula m " +
                "inner join p_natural pn on pn.cod_persona = m.cod_persona " +
                "inner join aula a on m.cod_aula = a.cod_aula " +
                "inner join programacion_aula pa on pa.cod_progaula = m.cod_progaula " +
                "inner join nivel_grado ng on pa.cod_nivelgrado = ng.cod_nivelgrado " +
                "inner join nivel n on n.cod_nivel = ng.cod_nivel " +
                "inner join grado g on g.cod_grado = ng.cod_grado " +
                "WHERE pn.cod_persona IN(                              " +
                    "SELECT cod_persona FROM parentesco WHERE cod_pariente IN (                               " +
                        "SELECT cod_pariente FROM pariente WHERE cod_persona = ?)) " +
                "AND TO_CHAR(m.fecha_registro, 'YYYY') = (" +
                    "SELECT TO_CHAR(MAX(m2.fecha_registro),'YYYY')" +
                    "FROM MATRICULA m2)" ;
        try{
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setInt(1, cod_personaPariente);
            rs = ps.executeQuery();
            while(rs.next()){
                oUtilidad = new Utilidades();
                oUtilidad.setGrado(rs.getString(1))  ;
                oUtilidad.setSeccion(rs.getString(2))  ;
                oUtilidad.setNivel(rs.getString(3))  ;
                oUtilidad.setCodGrado(rs.getInt(4))  ;
                oUtilidad.setCodNivel(rs.getInt(5))  ;
                oUtilidad.setCodSeccion(rs.getInt(6))  ;
                LListaGrados.add(oUtilidad);                
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        }catch(SQLException ex){
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return LListaGrados;
    }

       public static ArrayList< Utilidades > listaAlumnos(String parametro){
          ArrayList<Utilidades> LListaGrados = new ArrayList<Utilidades>();
        Utilidades oUtilidad = null;
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select pn.cod_persona, g.nombre as nombreGrado, a.nombre as nombreSeccion, n.nombre as nombreNivel, " +
                "pn.apell_paterno || ' ' || pn.apell_materno || ',  '|| pn.primer_nombre, " +
                "g.cod_grado as codigoGrado, n.cod_nivel as codigoNivel, a.cod_aula " +
                "from matricula m " +
                "inner join p_natural pn on pn.cod_persona = m.cod_persona " +
                "inner join aula a on m.cod_aula = a.cod_aula " +
                "inner join programacion_aula pa on pa.cod_progaula = m.cod_progaula " +
                "inner join nivel_grado ng on pa.cod_nivelgrado = ng.cod_nivelgrado " +
                "inner join nivel n on n.cod_nivel = ng.cod_nivel " +
                "inner join grado g on g.cod_grado = ng.cod_grado " +
                "where TO_CHAR(m.fecha_registro, 'YYYY') = to_char(current_date, 'YYYY') " +
                "and pn.apell_paterno like upper( ? || '%') " +
                "and m.estado_actividad = true " +
                "and n.cod_nivel in(4,7) " +
                "order by pn.apell_paterno, pn.apell_materno, pn.primer_nombre " ;
        try{
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setString(1, parametro);
            rs = ps.executeQuery();
            while(rs.next()){
                oUtilidad = new Utilidades();
                oUtilidad.setCodPersona(rs.getInt(1))  ;
                oUtilidad.setGrado(rs.getString(2))  ;
                oUtilidad.setSeccion(rs.getString(3))  ;
                oUtilidad.setNivel(rs.getString(4))  ;
                oUtilidad.setNombreAlumno(rs.getString(5));                ;
                LListaGrados.add(oUtilidad);
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        }catch(SQLException ex){
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return LListaGrados;
    }
       
       public  List< Utilidades > listaGrados(int codNivel){
          List<Utilidades> LListaGrados = new ArrayList<Utilidades> ();
        Utilidades oUtilidad = null;
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "SELECT NG.cod_nivelgrado, G.nombre "
                + "FROM nivel_grado NG "
                + "INNER JOIN grado G ON G.cod_grado = NG.cod_grado "
                + "INNER JOIN nivel N ON N.cod_nivel = NG.cod_nivel "
                + "WHERE N.cod_nivel = ? " ;
        try{
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setInt(1, codNivel);
            rs = ps.executeQuery();
            while(rs.next()){
                oUtilidad = new Utilidades();
                oUtilidad.setCodNivelGrado(rs.getInt(1));
                oUtilidad.setGrado(rs.getString(2));
                LListaGrados.add(oUtilidad);
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        }catch(SQLException ex){
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return LListaGrados;
    }

   public static int AnioDocentePorCodigo(int codDocente){
        int anio = 0;
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "select yearp(?) " ;
        try{
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setInt(1, codDocente);
            rs = ps.executeQuery();
            while(rs.next()){
                anio = rs.getInt(1);
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        }catch(SQLException ex){
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return anio;
    }

   public String aunmentaCeros(StringBuffer codigo){
        for(int i=codigo.length();i<8;i++){
            codigo.insert(0, "0");
        }
        return new String(codigo);
    }

   public  int codigoPersonaPorCodigoAlumno(String codAlumno){
        
        Connection cn = null;
        PreparedStatement ps = null;
        ResultSet rs = null;
        String sql = "SELECT P.cod_persona FROM PERSONA P INNER JOIN ALUMNO A ON P.cod_persona = A.COD_PERSONA WHERE A.cod_alumno = ? " ;
        try{
            cn = Conexion.getConexion();
            ps = cn.prepareStatement(sql);
            ps.setString(1, codAlumno);
            rs = ps.executeQuery();
            while(rs.next()){
                codPersona = rs.getInt(1);
            }
        Conexion.cerrarPreparedStatement(ps);
        Conexion.cerrarConexion(cn);
        }catch(SQLException ex){
            ex.printStackTrace();
            Conexion.cerrarPreparedStatement(ps);
            Conexion.cerrarConexion(cn);
        }catch(Exception ex){
            ex.printStackTrace();
        }
        return codPersona;
    }

    /**
     * @return the grado
     */
    public String getGrado() {
        return grado;
    }

    /**
     * @param grado the grado to set
     */
    public void setGrado(String grado) {
        this.grado = grado;
    }

    /**
     * @return the seccion
     */
    public String getSeccion() {
        return seccion;
    }

    /**
     * @param seccion the seccion to set
     */
    public void setSeccion(String seccion) {
        this.seccion = seccion;
    }

    /**
     * @return the nivel
     */
    public String getNivel() {
        return nivel;
    }

    /**
     * @param nivel the nivel to set
     */
    public void setNivel(String nivel) {
        this.nivel = nivel;
    }

    /**
     * @return the horaEntrada
     */
    public String getHoraEntrada() {
        return horaEntrada;
    }

    /**
     * @param horaEntrada the horaEntrada to set
     */
    public void setHoraEntrada(String horaEntrada) {
        this.horaEntrada = horaEntrada;
    }

    /**
     * @return the horaSalida
     */
    public String getHoraSalida() {
        return horaSalida;
    }

    /**
     * @param horaSalida the horaSalida to set
     */
    public void setHoraSalida(String horaSalida) {
        this.horaSalida = horaSalida;
    }

    /**
     * @return the nombreAlumno
     */
    public String getNombreAlumno() {
        return nombreAlumno;
    }

    /**
     * @param nombreAlumno the nombreAlumno to set
     */
    public void setNombreAlumno(String nombreAlumno) {
        this.nombreAlumno = nombreAlumno;
    }

    /**
     * @return the nombreEnlace
     */
    public String getNombreEnlace() {
        return nombreEnlace;
    }

    /**
     * @param nombreEnlace the nombreEnlace to set
     */
    public void setNombreEnlace(String nombreEnlace) {
        this.nombreEnlace = nombreEnlace;
    }

    /**
     * @return the nombreTema
     */
    public String getNombreTema() {
        return nombreTema;
    }

    /**
     * @param nombreTema the nombreTema to set
     */
    public void setNombreTema(String nombreTema) {
        this.nombreTema = nombreTema;
    }

    /**
     * @return the nombreCurso
     */
    public String getNombreCurso() {
        return nombreCurso;
    }

    /**
     * @param nombreCurso the nombreCurso to set
     */
    public void setNombreCurso(String nombreCurso) {
        this.nombreCurso = nombreCurso;
    }

    /**
     * @return the codGrado
     */
    public int getCodGrado() {
        return codGrado;
    }

    /**
     * @param codGrado the codGrado to set
     */
    public void setCodGrado(int codGrado) {
        this.codGrado = codGrado;
    }

    /**
     * @return the codNivel
     */
    public int getCodNivel() {
        return codNivel;
    }

    /**
     * @param codNivel the codNivel to set
     */
    public void setCodNivel(int codNivel) {
        this.codNivel = codNivel;
    }

    /**
     * @return the codSeccion
     */
    public int getCodSeccion() {
        return codSeccion;
    }

    /**
     * @param codSeccion the codSeccion to set
     */
    public void setCodSeccion(int codSeccion) {
        this.codSeccion = codSeccion;
    }

    public String getNombrePersona() {
        return nombrePersona;
    }

    public void setNombrePersona(String nombrePersona) {
        this.nombrePersona = nombrePersona;
    }

    public String getTipoUsuario() {
        return tipoUsuario;
    }

    public void setTipoUsuario(String tipoUsuario) {
        this.tipoUsuario = tipoUsuario;
    }

    public int getCodPersona() {
        return codPersona;
    }

    public void setCodPersona(int codPersona) {
        this.codPersona = codPersona;
    }

    public int getCodTipoUsuarioWeb() {
        return codTipoUsuarioWeb;
    }

    public void setCodTipoUsuarioWeb(int codTipoUsuarioWeb) {
        this.codTipoUsuarioWeb = codTipoUsuarioWeb;
    }

    public String getPeriodoAnio() {
        return periodoAnio;
    }

    public void setPeriodoAnio(String periodoAnio) {
        this.periodoAnio = periodoAnio;
    }

    public int getCodPeriodo() {
        return codPeriodo;
    }

    public void setCodPeriodo(int codPeriodo) {
        this.codPeriodo = codPeriodo;
    }



}
